package org.yzhzc.common.message.config;

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置类：用于配置阿里云短信服务的客户端实例。
 */
@Configuration
public class AliSmsConfig {

    // 从配置文件中读取阿里云 AccessKeyId，若未提供则为空
    @Value("${sms.aliyun.accessKeyId:}")
    private String accessKeyId;

    // 从配置文件中读取阿里云 AccessKeySecret，若未提供则为空
    @Value("${sms.aliyun.accessKeySecret:}")
    private String accessKeySecret;

    // 从配置文件中读取阿里云短信服务的 endpoint，若未提供则为空
    @Value("${sms.aliyun.endpoint:}")
    private String endpoint;

    /**
     * 创建阿里云短信客户端的 Bean。
     *
     * @return Client 客户端实例
     * @throws Exception 创建客户端时可能抛出的异常
     */
    @Bean("aliClient")
    public Client client() throws Exception {
        // 配置阿里云短信服务所需的基本信息
        Config config = new Config()
                .setAccessKeyId(accessKeyId)  // 设置 AccessKeyId
                .setAccessKeySecret(accessKeySecret)  // 设置 AccessKeySecret
                .setEndpoint(endpoint);  // 设置 endpoint
        return new Client(config);  // 返回一个新的 Client 实例
    }
}
